﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DevExpress.Xpo;
using DevExpress.Web.ASPxEditors;
using DevExpress.Web.ASPxClasses;
using DevExpress.Web.ASPxGridView;
using DevExpress.Web.Data;
using SGT_ON;

public partial class IngresoProductos : System.Web.UI.Page
{
    private StockRemito Remito
    {
        get
        {
            StockRemito _Remito = (StockRemito)Session["Remito"];
            if (_Remito == null)
            {
                _Remito = new StockRemito();
                Session["Remito"] = _Remito;
            }

            return _Remito;
        }
        set
        {
            Session["Remito"] = value;
        }
    }
    private StockLineaDeRemitoColeccion LineasDeRemito
    {
        get
        {
            StockLineaDeRemitoColeccion _LineasDeRemito = (StockLineaDeRemitoColeccion)Session["LineasDeRemito"];
            if (_LineasDeRemito == null)
                _LineasDeRemito = new StockLineaDeRemitoColeccion();

            return _LineasDeRemito;
        }
        set
        {
            Session["LineasDeRemito"] = value;
        }
        
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
        }
        AsignarDatosDeRemitoEnPantalla();
    }


    protected void dsProductos_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
    {
        if(!IsPostBack)
            e.Cancel = true;
    }
    private void AsignarDatosDeRemitoEnPantalla()
    {
        gvLineasDeRemito.DataBind();   
    }
    protected void btnBuscar_Click(object sender, ImageClickEventArgs e)
    {

    }
    protected void gvProductos_DataBound(object sender, EventArgs e)
    {
    }
    protected void btnAgregar_Click(object sender, EventArgs e)
    {
    }
    //http://documentation.devexpress.com/#AspNet/CustomDocument3750 VALIDAR LA FILA
    protected void gvProductos_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e)
    {   
        //if (e.ButtonID != "btnAgregarARemito") return;
        ASPxGridView _gv = sender as ASPxGridView;
        
        if (e.ButtonID == "btnAgregarARemito")
        {
            int _IdProducto = (int)_gv.GetRowValues(e.VisibleIndex, "ID");
            //StockLineaDeRemito _linea = ObtenerLineaDeRemitoDeGrilla((ASPxGridView)sender, e.VisibleIndex, _IdProducto);
            StockLineaDeRemitoColeccion _lineas = LineasDeRemito;
            //_lineas.Add(_linea);
            LineasDeRemito = _lineas;
        }
            
    }
    //protected StockLineaDeRemito ObtenerLineaDeRemitoDeGrilla(string pCantidad, int pIdProducto)
    //{
    //    int start = pGrilla.PageIndex * pGrilla.SettingsPager.PageSize;
    //    int end = pGrilla.VisibleRowCount;
    //    GridViewDataColumn _ID = pGrilla.Columns["ID"] as GridViewDataColumn;
    //    GridViewDataColumn _Cantidad = pGrilla.Columns["Cantidad"] as GridViewDataColumn;

    //    ASPxTextBox CantidadTextBox = (ASPxTextBox)pGrilla.FindRowCellTemplateControl(pVisibleIndex, _Cantidad, "txtCantidad");

    //    StockLineaDeRemito _LineaDeRemito = new StockLineaDeRemito();
    //    int _cantidad;
    //    int.TryParse(CantidadTextBox.Text, out _cantidad);
    //    _LineaDeRemito.Cantidad = _cantidad;

    //    StockMovimientoStock _movimiento = new StockMovimientoStock();
    //    _movimiento.IdProducto = pIdProducto;

    //    _LineaDeRemito.MovimientoAsociado = _movimiento;

    //    return _LineaDeRemito;
    //}
    protected void btnAgregar_Click1(object sender, EventArgs e)
    {
        int _cantidad, _idProducto;
        int.TryParse(((ASPxTextBox)((((Button)sender).NamingContainer)).Controls[1]).Text, out _cantidad);
        int.TryParse(((Label)((((Button)sender).NamingContainer)).Controls[5]).Text, out _idProducto);

        StockLineaDeRemito _LineaDeRemito = new StockLineaDeRemito();
        _LineaDeRemito.Cantidad = _cantidad;

        StockMovimientoStock _movimiento = new StockMovimientoStock();
        _movimiento.IdProducto = _idProducto;

        _LineaDeRemito.MovimientoAsociado = _movimiento;

        StockLineaDeRemitoColeccion _lineas = LineasDeRemito;
        _lineas.Add(_LineaDeRemito);
        LineasDeRemito = _lineas;
        gvLineasDeRemito.DataBind();
    }
    protected void dsLineasDeRemito_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
    {
        e.InputParameters["pLineasADevolver"] = LineasDeRemito;
    }
}